{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "感知器可以⽤来解决⽐较简单的逻辑问题，如逻辑⻔的设计。"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {},
   "source": [
    "序号   x1   x2  d\n",
    " 1     0   0   0\n",
    " 2     1   0   0\n",
    " 3     0   1   0\n",
    " 4     1   1   1\n",
    " \n",
    " 0*w1 + 0*w2 + b <=0\n",
    " 1*w1 + 0*w2 + b <=0\n",
    " 0*w1 + 1*w2 + b <=0\n",
    " 1*w1 + 1*w2 + b > 0\n",
    " 由第一个表达式知 b<=0 ,由于偏执一般不为0，可以假设一个值，然后反推w1  w2 即 w1 w2 单个值都小于等于b的绝对值\n",
    " 可能的解有：\n",
    " w1 = 1   w2 = 1   b=-1\n",
    " w1 = 1   w2 = 2   b=-2\n",
    " w1 = 2   w2 = 2   b=-3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "或问题"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {},
   "source": [
    "编号   x1   x2   d\n",
    " 1     0   0   0\n",
    " 2     1   0   1\n",
    " 3     0   1   1\n",
    " 4     1   1   1\n",
    "\n",
    "0*w1 + 0*w2 + b <=0\n",
    "1*w1 + 0*w2 + b > 0\n",
    "0*w1 + 1*w2 + b > 0\n",
    "1*w1 + 1*w2 + b > 0\n",
    " 由第一个表达式知 b<=0 ,由于偏执一般不为0，可以假设一个值，然后反推w1  w2 即w1和w2单个值都大于 绝对值b\n",
    " 可能的解有：\n",
    "w1 = 2   w2 = 2    b=-1\n",
    "w1 = 3   w2 = 3    b=-2\n",
    "w1 = 4   w2 = 4    b=-3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "logical and\n",
      "epoch 0 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 0 sample 1  [1 2 0 1 -1 0 -1]\n",
      "epoch 0 sample 2  [0 2 -1 1 0 -1 -1]\n",
      "epoch 0 sample 3  [0 1 -2 0 1 1 1]\n",
      "epoch 1 sample 0  [1 2 -1 0 0 0 0]\n",
      "epoch 1 sample 1  [1 2 -1 0 0 0 0]\n",
      "epoch 1 sample 2  [1 2 -1 1 0 -1 -1]\n",
      "epoch 1 sample 3  [1 1 -2 0 1 1 1]\n",
      "epoch 2 sample 0  [2 2 -1 0 0 0 0]\n",
      "epoch 2 sample 1  [2 2 -1 1 -1 0 -1]\n",
      "epoch 2 sample 2  [1 2 -2 0 0 0 0]\n",
      "epoch 2 sample 3  [1 2 -2 1 0 0 0]\n",
      "epoch 3 sample 0  [1 2 -2 0 0 0 0]\n",
      "epoch 3 sample 1  [1 2 -2 0 0 0 0]\n",
      "epoch 3 sample 2  [1 2 -2 0 0 0 0]\n",
      "epoch 3 sample 3  [1 2 -2 1 0 0 0]\n",
      "epoch 4 sample 0  [1 2 -2 0 0 0 0]\n",
      "epoch 4 sample 1  [1 2 -2 0 0 0 0]\n",
      "epoch 4 sample 2  [1 2 -2 0 0 0 0]\n",
      "epoch 4 sample 3  [1 2 -2 1 0 0 0]\n",
      "epoch 5 sample 0  [1 2 -2 0 0 0 0]\n",
      "epoch 5 sample 1  [1 2 -2 0 0 0 0]\n",
      "epoch 5 sample 2  [1 2 -2 0 0 0 0]\n",
      "epoch 5 sample 3  [1 2 -2 1 0 0 0]\n",
      "epoch 6 sample 0  [1 2 -2 0 0 0 0]\n",
      "epoch 6 sample 1  [1 2 -2 0 0 0 0]\n",
      "epoch 6 sample 2  [1 2 -2 0 0 0 0]\n",
      "epoch 6 sample 3  [1 2 -2 1 0 0 0]\n",
      "epoch 7 sample 0  [1 2 -2 0 0 0 0]\n",
      "epoch 7 sample 1  [1 2 -2 0 0 0 0]\n",
      "epoch 7 sample 2  [1 2 -2 0 0 0 0]\n",
      "epoch 7 sample 3  [1 2 -2 1 0 0 0]\n",
      "epoch 8 sample 0  [1 2 -2 0 0 0 0]\n",
      "epoch 8 sample 1  [1 2 -2 0 0 0 0]\n",
      "epoch 8 sample 2  [1 2 -2 0 0 0 0]\n",
      "epoch 8 sample 3  [1 2 -2 1 0 0 0]\n",
      "epoch 9 sample 0  [1 2 -2 0 0 0 0]\n",
      "epoch 9 sample 1  [1 2 -2 0 0 0 0]\n",
      "epoch 9 sample 2  [1 2 -2 0 0 0 0]\n",
      "epoch 9 sample 3  [1 2 -2 1 0 0 0]\n",
      "logical or\n",
      "epoch 0 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 0 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 0 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 0 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 1 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 1 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 1 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 1 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 2 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 2 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 2 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 2 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 3 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 3 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 3 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 3 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 4 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 4 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 4 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 4 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 5 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 5 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 5 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 5 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 6 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 6 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 6 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 6 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 7 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 7 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 7 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 7 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 8 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 8 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 8 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 8 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 9 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 9 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 9 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 9 sample 3  [1 2 0 1 0 0 0]\n",
      "logical xor\n",
      "epoch 0 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 0 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 0 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 0 sample 3  [1 2 0 1 -1 -1 -1]\n",
      "epoch 1 sample 0  [0 1 -1 0 0 0 0]\n",
      "epoch 1 sample 1  [0 1 -1 0 1 0 1]\n",
      "epoch 1 sample 2  [1 1 0 1 0 0 0]\n",
      "epoch 1 sample 3  [1 1 0 1 -1 -1 -1]\n",
      "epoch 2 sample 0  [0 0 -1 0 0 0 0]\n",
      "epoch 2 sample 1  [0 0 -1 0 1 0 1]\n",
      "epoch 2 sample 2  [1 0 0 0 0 1 1]\n",
      "epoch 2 sample 3  [1 1 1 1 -1 -1 -1]\n",
      "epoch 3 sample 0  [0 0 0 0 0 0 0]\n",
      "epoch 3 sample 1  [0 0 0 0 1 0 1]\n",
      "epoch 3 sample 2  [1 0 1 1 0 0 0]\n",
      "epoch 3 sample 3  [1 0 1 1 -1 -1 -1]\n",
      "epoch 4 sample 0  [0 -1 0 0 0 0 0]\n",
      "epoch 4 sample 1  [0 -1 0 0 1 0 1]\n",
      "epoch 4 sample 2  [1 -1 1 0 0 1 1]\n",
      "epoch 4 sample 3  [1 0 2 1 -1 -1 -1]\n",
      "epoch 5 sample 0  [0 -1 1 1 0 0 -1]\n",
      "epoch 5 sample 1  [0 -1 0 0 1 0 1]\n",
      "epoch 5 sample 2  [1 -1 1 0 0 1 1]\n",
      "epoch 5 sample 3  [1 0 2 1 -1 -1 -1]\n",
      "epoch 6 sample 0  [0 -1 1 1 0 0 -1]\n",
      "epoch 6 sample 1  [0 -1 0 0 1 0 1]\n",
      "epoch 6 sample 2  [1 -1 1 0 0 1 1]\n",
      "epoch 6 sample 3  [1 0 2 1 -1 -1 -1]\n",
      "epoch 7 sample 0  [0 -1 1 1 0 0 -1]\n",
      "epoch 7 sample 1  [0 -1 0 0 1 0 1]\n",
      "epoch 7 sample 2  [1 -1 1 0 0 1 1]\n",
      "epoch 7 sample 3  [1 0 2 1 -1 -1 -1]\n",
      "epoch 8 sample 0  [0 -1 1 1 0 0 -1]\n",
      "epoch 8 sample 1  [0 -1 0 0 1 0 1]\n",
      "epoch 8 sample 2  [1 -1 1 0 0 1 1]\n",
      "epoch 8 sample 3  [1 0 2 1 -1 -1 -1]\n",
      "epoch 9 sample 0  [0 -1 1 1 0 0 -1]\n",
      "epoch 9 sample 1  [0 -1 0 0 1 0 1]\n",
      "epoch 9 sample 2  [1 -1 1 0 0 1 1]\n",
      "epoch 9 sample 3  [1 0 2 1 -1 -1 -1]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "samples_and = [\n",
    "    [0, 0, 0],\n",
    "    [1, 0, 0],\n",
    "    [0, 1, 0],\n",
    "    [1, 1, 1],\n",
    "]\n",
    "\n",
    "\n",
    "samples_or = [\n",
    "    [0, 0, 0],\n",
    "    [1, 0, 1],\n",
    "    [0, 1, 1],\n",
    "    [1, 1, 1],\n",
    "]\n",
    "\n",
    "\n",
    "samples_xor = [\n",
    "    [0, 0, 0],\n",
    "    [1, 0, 1],\n",
    "    [0, 1, 1],\n",
    "    [1, 1, 0],\n",
    "]\n",
    "\n",
    "\n",
    "\n",
    "def perceptron(samples):\n",
    "    w = np.array([1, 2])\n",
    "    b = 0\n",
    "    a = 1\n",
    "\n",
    "    for i in range(10):\n",
    "        for j in range(4):\n",
    "            x = np.array(samples[j][:2])\n",
    "            y = 1 if np.dot(w, x) + b > 0 else 0\n",
    "            d = np.array(samples[j][2])\n",
    "\n",
    "            delta_b = a*(d-y)\n",
    "            delta_w = a*(d-y)*x\n",
    "\n",
    "            print('epoch {} sample {}  [{} {} {} {} {} {} {}]'.format(\n",
    "                i, j, w[0], w[1], b, y, delta_w[0], delta_w[1], delta_b\n",
    "            ))\n",
    "            w = w + delta_w\n",
    "            b = b + delta_b\n",
    "\n",
    "\n",
    "if __name__ == '__main__':\n",
    "    print('logical and')\n",
    "    perceptron(samples_and)\n",
    "    print('logical or')\n",
    "    perceptron(samples_or)\n",
    "    print('logical xor')\n",
    "    perceptron(samples_xor)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 2,
     "metadata": {
      "image/png": {
       "height": 229,
       "width": 477
      }
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import Image\n",
    "Image(filename = \"./xor.png\", width=477, height=229)"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {},
   "source": [
    "即异或问题可以分为根据输出可以分为两类，显示在二维坐标系中如上图（右）所示：其中输出结果为1对应右图中红色的十字架，输出为0对应右图中蓝色的圆圈，我们可以发现对于这种情况无法找到一条直线将两类结果分开。即感知机无法找到一个线性模型对异或问题进行划分。\n",
    "综上所述，单层的感知机无法处理异或问题，并且所有的线性分类模型都无法处理异或分类问题。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
